home *** CD-ROM | disk | FTP | other *** search
/ Resource Library: Multimedia / Resource Library: Multimedia.iso / maestro / source / timeline / timelin_.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-06-15  |  25.4 KB  |  946 lines

  1. /*
  2.  * TimeLine_ui.c - User interface object initialization functions.
  3.  * This file was generated by `gxv' from `TimeLine.G'.
  4.  * DO NOT EDIT BY HAND.
  5.  */
  6.  
  7. #include <stdio.h>
  8. #include <sys/param.h>
  9. #include <sys/types.h>
  10. #include <xview/xview.h>
  11. #include <xview/canvas.h>
  12. #include <xview/panel.h>
  13. #include <xview/scrollbar.h>
  14. #include <xview/svrimage.h>
  15. #include <xview/termsw.h>
  16. #include <xview/text.h>
  17. #include <xview/tty.h>
  18. #include <xview/xv_xrect.h>
  19. #include <gcm.h>
  20. #include "TimeLine_ui.h"
  21.  
  22. /*
  23.  * Create object `EditMenu' in the specified instance.
  24.  */
  25. Xv_opaque
  26. TimeLine_EditMenu_create(caddr_t ip, Xv_opaque owner)
  27. {
  28.     extern Menu_item    CutHandler(Menu_item, Menu_generate);
  29.     extern Menu_item    CopyHandler(Menu_item, Menu_generate);
  30.     extern Menu_item    PasteHandler(Menu_item, Menu_generate);
  31.     extern Menu_item    DeleteHandler(Menu_item, Menu_generate);
  32.     extern Menu_item    ClearAllHandler(Menu_item, Menu_generate);
  33.     extern Menu_item    ShowClipboardHandler(Menu_item, Menu_generate);
  34.     Xv_opaque    obj;
  35.     
  36.     obj = xv_create(XV_NULL, MENU_COMMAND_MENU,
  37.         XV_KEY_DATA, INSTANCE, ip,
  38.         MENU_TITLE_ITEM, "Edit",
  39.         MENU_ITEM,
  40.             XV_KEY_DATA, INSTANCE, ip,
  41.             MENU_STRING, "Cut",
  42.             MENU_COLOR, gcm_color_index("Black"),
  43.             MENU_GEN_PROC, CutHandler,
  44.             NULL,
  45.         MENU_ITEM,
  46.             XV_KEY_DATA, INSTANCE, ip,
  47.             MENU_STRING, "Copy",
  48.             MENU_COLOR, gcm_color_index("Black"),
  49.             MENU_GEN_PROC, CopyHandler,
  50.             NULL,
  51.         MENU_ITEM,
  52.             XV_KEY_DATA, INSTANCE, ip,
  53.             MENU_STRING, "Paste",
  54.             MENU_COLOR, gcm_color_index("Black"),
  55.             MENU_GEN_PROC, PasteHandler,
  56.             NULL,
  57.         MENU_ITEM,
  58.             XV_KEY_DATA, INSTANCE, ip,
  59.             MENU_STRING, "Delete",
  60.             MENU_COLOR, gcm_color_index("Black"),
  61.             MENU_GEN_PROC, DeleteHandler,
  62.             NULL,
  63.         MENU_ITEM,
  64.             XV_KEY_DATA, INSTANCE, ip,
  65.             MENU_STRING, "Clear All",
  66.             MENU_COLOR, gcm_color_index("Black"),
  67.             MENU_GEN_PROC, ClearAllHandler,
  68.             NULL,
  69.         MENU_ITEM,
  70.             XV_KEY_DATA, INSTANCE, ip,
  71.             MENU_STRING, "Show Clipboard ...",
  72.             MENU_COLOR, gcm_color_index("Black"),
  73.             MENU_GEN_PROC, ShowClipboardHandler,
  74.             NULL,
  75.         MENU_DEFAULT, 2,
  76.         MENU_GEN_PIN_WINDOW, owner, "Edit",
  77.         NULL);
  78.     return obj;
  79. }
  80.  
  81. /*
  82.  * Create object `PlayMenu' in the specified instance.
  83.  */
  84. Xv_opaque
  85. TimeLine_PlayMenu_create(caddr_t ip, Xv_opaque owner)
  86. {
  87.     extern Menu_item    PlayFromHandler(Menu_item, Menu_generate);
  88.     extern Menu_item    PlayHandler(Menu_item, Menu_generate);
  89.     extern Menu_item    PlaySelectedHandler(Menu_item, Menu_generate);
  90.     extern Menu_item    SynchronizeDocument(Menu_item, Menu_generate);
  91.     Xv_opaque    obj;
  92.     
  93.     obj = xv_create(XV_NULL, MENU_COMMAND_MENU,
  94.         XV_KEY_DATA, INSTANCE, ip,
  95.         MENU_TITLE_ITEM, "Play",
  96.         MENU_ITEM,
  97.             XV_KEY_DATA, INSTANCE, ip,
  98.             MENU_STRING, "Play from insertion point",
  99.             MENU_COLOR, gcm_color_index("Black"),
  100.             MENU_GEN_PROC, PlayFromHandler,
  101.             NULL,
  102.         MENU_ITEM,
  103.             XV_KEY_DATA, INSTANCE, ip,
  104.             MENU_STRING, "Play whole document",
  105.             MENU_COLOR, gcm_color_index("Black"),
  106.             MENU_GEN_PROC, PlayHandler,
  107.             NULL,
  108.         MENU_ITEM,
  109.             XV_KEY_DATA, INSTANCE, ip,
  110.             MENU_STRING, "Play selected region",
  111.             MENU_COLOR, gcm_color_index("Black"),
  112.             MENU_GEN_PROC, PlaySelectedHandler,
  113.             NULL,
  114.         MENU_ITEM,
  115.             XV_KEY_DATA, INSTANCE, ip,
  116.             MENU_STRING, "Synchronize This Document",
  117.             MENU_GEN_PROC, SynchronizeDocument,
  118.             NULL,
  119.         MENU_DEFAULT, 2,
  120.         MENU_GEN_PIN_WINDOW, owner, "Play",
  121.         NULL);
  122.     return obj;
  123. }
  124.  
  125. /*
  126.  * Create object `AppMenu' in the specified instance.
  127.  */
  128. Xv_opaque
  129. TimeLine_AppMenu_create(caddr_t ip, Xv_opaque owner)
  130. {
  131.     extern Menu_item    UpdateAppsHandler(Menu_item, Menu_generate);
  132.     extern Menu_item    ShowEditInfoHandler(Menu_item, Menu_generate);
  133.     extern Menu_item    DeleteAppHandler(Menu_item, Menu_generate);
  134.     extern Menu_item    ShowApplicationHandler(Menu_item, Menu_generate);
  135.     extern Menu_item    HideApplicationHandler(Menu_item, Menu_generate);
  136.     extern Menu_item    MuteAppHandler(Menu_item, Menu_generate);
  137.     extern Menu_item    RemoveMuteAppHandler(Menu_item, Menu_generate);
  138.     Xv_opaque    obj;
  139.     
  140.     obj = xv_create(XV_NULL, MENU_COMMAND_MENU,
  141.         XV_KEY_DATA, INSTANCE, ip,
  142.         MENU_TITLE_ITEM, "Applications",
  143.         MENU_ITEM,
  144.             XV_KEY_DATA, INSTANCE, ip,
  145.             MENU_STRING, "Update Applications List",
  146.             MENU_COLOR, gcm_color_index("Black"),
  147.             MENU_GEN_PROC, UpdateAppsHandler,
  148.             NULL,
  149.         MENU_ITEM,
  150.             XV_KEY_DATA, INSTANCE, ip,
  151.             MENU_STRING, "Show edit info for an application ...",
  152.             MENU_COLOR, gcm_color_index("Black"),
  153.             MENU_GEN_PROC, ShowEditInfoHandler,
  154.             NULL,
  155.         MENU_ITEM,
  156.             XV_KEY_DATA, INSTANCE, ip,
  157.             MENU_STRING, "Delete selected application",
  158.             MENU_COLOR, gcm_color_index("Black"),
  159.             MENU_GEN_PROC, DeleteAppHandler,
  160.             NULL,
  161.         MENU_ITEM,
  162.             XV_KEY_DATA, INSTANCE, ip,
  163.             MENU_STRING, "Show application",
  164.             MENU_COLOR, gcm_color_index("Black"),
  165.             MENU_GEN_PROC, ShowApplicationHandler,
  166.             NULL,
  167.         MENU_ITEM,
  168.             XV_KEY_DATA, INSTANCE, ip,
  169.             MENU_STRING, "Hide application",
  170.             MENU_COLOR, gcm_color_index("Black"),
  171.             MENU_GEN_PROC, HideApplicationHandler,
  172.             NULL,
  173.         MENU_ITEM,
  174.             XV_KEY_DATA, INSTANCE, ip,
  175.             MENU_STRING, "Mute application",
  176.             MENU_COLOR, gcm_color_index("Black"),
  177.             MENU_GEN_PROC, MuteAppHandler,
  178.             NULL,
  179.         MENU_ITEM,
  180.             XV_KEY_DATA, INSTANCE, ip,
  181.             MENU_STRING, "Remove mute from application",
  182.             MENU_COLOR, gcm_color_index("Black"),
  183.             MENU_GEN_PROC, RemoveMuteAppHandler,
  184.             NULL,
  185.         MENU_DEFAULT, 2,
  186.         MENU_GEN_PIN_WINDOW, owner, "Applications",
  187.         NULL);
  188.     return obj;
  189. }
  190.  
  191. /*
  192.  * Create object `DocumentMenu' in the specified instance.
  193.  */
  194. Xv_opaque
  195. TimeLine_DocumentMenu_create(caddr_t ip, Xv_opaque owner)
  196. {
  197.     extern Menu_item    AboutHandler(Menu_item, Menu_generate);
  198.     extern Menu_item    NewHandler(Menu_item, Menu_generate);
  199.     extern Menu_item    OpenFileHandler(Menu_item, Menu_generate);
  200.     extern Menu_item    SaveFileHandler(Menu_item, Menu_generate);
  201.     extern Menu_item    SaveAsFileHandler(Menu_item, Menu_generate);
  202.     extern Menu_item    CloseHandler(Menu_item, Menu_generate);
  203.     extern Menu_item    QuitHandler(Menu_item, Menu_generate);
  204.     Xv_opaque    obj;
  205.     
  206.     obj = xv_create(XV_NULL, MENU_COMMAND_MENU,
  207.         XV_KEY_DATA, INSTANCE, ip,
  208.         MENU_TITLE_ITEM, "Document",
  209.         MENU_ITEM,
  210.             XV_KEY_DATA, INSTANCE, ip,
  211.             MENU_STRING, "About TimeLine Editor ...",
  212.             MENU_COLOR, gcm_color_index("Black"),
  213.             MENU_GEN_PROC, AboutHandler,
  214.             NULL,
  215.         MENU_ITEM,
  216.             XV_KEY_DATA, INSTANCE, ip,
  217.             MENU_STRING, "New ...",
  218.             MENU_COLOR, gcm_color_index("Black"),
  219.             MENU_GEN_PROC, NewHandler,
  220.             NULL,
  221.         MENU_ITEM,
  222.             XV_KEY_DATA, INSTANCE, ip,
  223.             MENU_STRING, "Open ...",
  224.             MENU_COLOR, gcm_color_index("Black"),
  225.             MENU_GEN_PROC, OpenFileHandler,
  226.             NULL,
  227.         MENU_ITEM,
  228.             XV_KEY_DATA, INSTANCE, ip,
  229.             MENU_STRING, "Save",
  230.             MENU_COLOR, gcm_color_index("Black"),
  231.             MENU_GEN_PROC, SaveFileHandler,
  232.             NULL,
  233.         MENU_ITEM,
  234.             XV_KEY_DATA, INSTANCE, ip,
  235.             MENU_STRING, "Save as ...",
  236.             MENU_COLOR, gcm_color_index("Black"),
  237.             MENU_GEN_PROC, SaveAsFileHandler,
  238.             NULL,
  239.         MENU_ITEM,
  240.             XV_KEY_DATA, INSTANCE, ip,
  241.             MENU_STRING, "Close",
  242.             MENU_COLOR, gcm_color_index("Black"),
  243.             MENU_GEN_PROC, CloseHandler,
  244.             NULL,
  245.         MENU_ITEM,
  246.             XV_KEY_DATA, INSTANCE, ip,
  247.             MENU_STRING, "Quit",
  248.             MENU_COLOR, gcm_color_index("Black"),
  249.             MENU_GEN_PROC, QuitHandler,
  250.             NULL,
  251.         MENU_DEFAULT, 4,
  252.         MENU_GEN_PIN_WINDOW, owner, "Document",
  253.         NULL);
  254.     return obj;
  255. }
  256.  
  257. /*
  258.  * Create object `GridMenu' in the specified instance.
  259.  */
  260. Xv_opaque
  261. TimeLine_GridMenu_create(caddr_t ip, Xv_opaque owner)
  262. {
  263.     extern Menu_item    GridOffHandler(Menu_item, Menu_generate);
  264.     extern Menu_item    FivePixelHandler(Menu_item, Menu_generate);
  265.     extern Menu_item    TenPixelHandler(Menu_item, Menu_generate);
  266.     extern Menu_item    TwentyPixelHandler(Menu_item, Menu_generate);
  267.     extern Menu_item    ThirtyPixelHandler(Menu_item, Menu_generate);
  268.     extern Menu_item    FortyPixelHandler(Menu_item, Menu_generate);
  269.     extern Menu_item    FiftyPixelHandler(Menu_item, Menu_generate);
  270.     Xv_opaque    obj;
  271.     
  272.     obj = xv_create(XV_NULL, MENU_CHOICE_MENU,
  273.         XV_KEY_DATA, INSTANCE, ip,
  274.         MENU_TITLE_ITEM, "Grid",
  275.         MENU_ITEM,
  276.             XV_KEY_DATA, INSTANCE, ip,
  277.             MENU_STRING, "Grid Off",
  278.             MENU_COLOR, gcm_color_index("Black"),
  279.             MENU_GEN_PROC, GridOffHandler,
  280.             NULL,
  281.         MENU_ITEM,
  282.             XV_KEY_DATA, INSTANCE, ip,
  283.             MENU_STRING, "1/2 second",
  284.             MENU_COLOR, gcm_color_index("Black"),
  285.             MENU_GEN_PROC, FivePixelHandler,
  286.             NULL,
  287.         MENU_ITEM,
  288.             XV_KEY_DATA, INSTANCE, ip,
  289.             MENU_STRING, "1 second",
  290.             MENU_COLOR, gcm_color_index("Black"),
  291.             MENU_GEN_PROC, TenPixelHandler,
  292.             NULL,
  293.         MENU_ITEM,
  294.             XV_KEY_DATA, INSTANCE, ip,
  295.             MENU_STRING, "2 seconds",
  296.             MENU_COLOR, gcm_color_index("Black"),
  297.             MENU_GEN_PROC, TwentyPixelHandler,
  298.             NULL,
  299.         MENU_ITEM,
  300.             XV_KEY_DATA, INSTANCE, ip,
  301.             MENU_STRING, "3 seconds",
  302.             MENU_COLOR, gcm_color_index("Black"),
  303.             MENU_GEN_PROC, ThirtyPixelHandler,
  304.             NULL,
  305.         MENU_ITEM,
  306.             XV_KEY_DATA, INSTANCE, ip,
  307.             MENU_STRING, "4 seconds",
  308.             MENU_COLOR, gcm_color_index("Black"),
  309.             MENU_GEN_PROC, FortyPixelHandler,
  310.             NULL,
  311.         MENU_ITEM,
  312.             XV_KEY_DATA, INSTANCE, ip,
  313.             MENU_STRING, "5 seconds",
  314.             MENU_COLOR, gcm_color_index("Black"),
  315.             MENU_GEN_PROC, FiftyPixelHandler,
  316.             NULL,
  317.         NULL);
  318.     return obj;
  319. }
  320.  
  321. /*
  322.  * Create object `OptionsMenu' in the specified instance.
  323.  */
  324. Xv_opaque
  325. TimeLine_OptionsMenu_create(caddr_t ip, Xv_opaque owner)
  326. {
  327.     extern Menu_item    ShowRegionInfoHandler(Menu_item, Menu_generate);
  328.     extern Menu_item    InsertBlankTimeHandler(Menu_item, Menu_generate);
  329.     extern Menu_item    InsertPauseMarkerHandler(Menu_item, Menu_generate);
  330.     extern Menu_item    ConnectPortManagerHandler(Menu_item, Menu_generate);
  331.     Xv_opaque    obj;
  332.     
  333.     obj = xv_create(XV_NULL, MENU_COMMAND_MENU,
  334.         XV_KEY_DATA, INSTANCE, ip,
  335.         MENU_TITLE_ITEM, "Options",
  336.         MENU_ITEM,
  337.             XV_KEY_DATA, INSTANCE, ip,
  338.             MENU_STRING, "Show Region Info ...",
  339.             MENU_COLOR, gcm_color_index("Black"),
  340.             MENU_GEN_PROC, ShowRegionInfoHandler,
  341.             NULL,
  342.         MENU_ITEM,
  343.             XV_KEY_DATA, INSTANCE, ip,
  344.             MENU_STRING, "Insert Blank Time ...",
  345.             MENU_COLOR, gcm_color_index("Black"),
  346.             MENU_GEN_PROC, InsertBlankTimeHandler,
  347.             NULL,
  348.         MENU_ITEM,
  349.             XV_KEY_DATA, INSTANCE, ip,
  350.             MENU_STRING, "Insert/Delete Pause Marker ...",
  351.             MENU_COLOR, gcm_color_index("Black"),
  352.             MENU_GEN_PROC, InsertPauseMarkerHandler,
  353.             NULL,
  354.         MENU_ITEM,
  355.             XV_KEY_DATA, INSTANCE, ip,
  356.             MENU_STRING, "Grid",
  357.             MENU_COLOR, gcm_color_index("Black"),
  358.             MENU_PULLRIGHT, TimeLine_GridMenu_create(ip, owner),
  359.             NULL,
  360.         MENU_ITEM,
  361.             XV_KEY_DATA, INSTANCE, ip,
  362.             MENU_STRING, "Connect with new Port Manager ...",
  363.             MENU_COLOR, gcm_color_index("Black"),
  364.             MENU_GEN_PROC, ConnectPortManagerHandler,
  365.             NULL,
  366.         MENU_GEN_PIN_WINDOW, owner, "Options",
  367.         NULL);
  368.     return obj;
  369. }
  370.  
  371. /*
  372.  * Initialize an instance of object `window'.
  373.  */
  374. TimeLine_window_objects *
  375. TimeLine_window_objects_initialize(TimeLine_window_objects *ip, Xv_opaque owner)
  376. {
  377.     if (!ip && !(ip = (TimeLine_window_objects *) calloc(1, sizeof (TimeLine_window_objects))))
  378.         return (TimeLine_window_objects *) NULL;
  379.     if (!ip->window)
  380.         ip->window = TimeLine_window_window_create(ip, owner);
  381.     if (!ip->controls)
  382.         ip->controls = TimeLine_window_controls_create(ip, ip->window);
  383.     if (!ip->documentButton)
  384.         ip->documentButton = TimeLine_window_documentButton_create(ip, ip->controls);
  385.     if (!ip->appButton)
  386.         ip->appButton = TimeLine_window_appButton_create(ip, ip->controls);
  387.     if (!ip->editButton)
  388.         ip->editButton = TimeLine_window_editButton_create(ip, ip->controls);
  389.     if (!ip->playButton)
  390.         ip->playButton = TimeLine_window_playButton_create(ip, ip->controls);
  391.     if (!ip->optionsButton)
  392.         ip->optionsButton = TimeLine_window_optionsButton_create(ip, ip->controls);
  393.     if (!ip->ZoomSlider)
  394.         ip->ZoomSlider = TimeLine_window_ZoomSlider_create(ip, ip->controls);
  395.     if (!ip->pauseButton)
  396.         ip->pauseButton = TimeLine_window_pauseButton_create(ip, ip->controls);
  397.     if (!ip->stopButton)
  398.         ip->stopButton = TimeLine_window_stopButton_create(ip, ip->controls);
  399.     if (!ip->playIconButton)
  400.         ip->playIconButton = TimeLine_window_playIconButton_create(ip, ip->controls);
  401.     if (!ip->MoveCanvasFastLeftButton)
  402.         ip->MoveCanvasFastLeftButton = TimeLine_window_MoveCanvasFastLeftButton_create(ip, ip->controls);
  403.     if (!ip->MoveCanvasLeftButton)
  404.         ip->MoveCanvasLeftButton = TimeLine_window_MoveCanvasLeftButton_create(ip, ip->controls);
  405.     if (!ip->MoveCanvasRightButton)
  406.         ip->MoveCanvasRightButton = TimeLine_window_MoveCanvasRightButton_create(ip, ip->controls);
  407.     if (!ip->MoveCanvasFastRightButton)
  408.         ip->MoveCanvasFastRightButton = TimeLine_window_MoveCanvasFastRightButton_create(ip, ip->controls);
  409.     if (!ip->ResetCanvasButton)
  410.         ip->ResetCanvasButton = TimeLine_window_ResetCanvasButton_create(ip, ip->controls);
  411.     if (!ip->AppCanvas)
  412.         ip->AppCanvas = TimeLine_window_AppCanvas_create(ip, ip->window);
  413.     if (!ip->DrawCanvas)
  414.         ip->DrawCanvas = TimeLine_window_DrawCanvas_create(ip, ip->window);
  415.     if (!ip->TimeCanvas)
  416.         ip->TimeCanvas = TimeLine_window_TimeCanvas_create(ip, ip->window);
  417.     return ip;
  418. }
  419.  
  420. /*
  421.  * Create object `window' in the specified instance.
  422.  */
  423. Xv_opaque
  424. TimeLine_window_window_create(TimeLine_window_objects *ip, Xv_opaque owner)
  425. {
  426.     Xv_opaque    obj;
  427.     Xv_opaque        window_image;
  428.     static unsigned short    window_bits[] = {
  429. #include "icons/TimeLine.icon"
  430.     };
  431.     
  432.     window_image = xv_create(XV_NULL, SERVER_IMAGE,
  433.         SERVER_IMAGE_DEPTH, 1,
  434.         SERVER_IMAGE_BITS, window_bits,
  435.         XV_WIDTH, 64,
  436.         XV_HEIGHT, 64,
  437.         NULL);
  438.     obj = xv_create(owner, FRAME,
  439.         XV_KEY_DATA, INSTANCE, ip,
  440.         XV_WIDTH, 804,
  441.         XV_HEIGHT, 234,
  442.         XV_LABEL, "TimeLine Editor",
  443.         FRAME_SHOW_FOOTER, TRUE,
  444.         FRAME_SHOW_RESIZE_CORNER, TRUE,
  445.         FRAME_ICON, xv_create(XV_NULL, ICON,
  446.             ICON_IMAGE, window_image,
  447.             NULL),
  448.         NULL);
  449.     return obj;
  450. }
  451.  
  452. /*
  453.  * Create object `controls' in the specified instance.
  454.  */
  455. Xv_opaque
  456. TimeLine_window_controls_create(TimeLine_window_objects *ip, Xv_opaque owner)
  457. {
  458.     Xv_opaque    obj;
  459.     
  460.     obj = xv_create(owner, PANEL,
  461.         XV_KEY_DATA, INSTANCE, ip,
  462.         XV_X, 0,
  463.         XV_Y, 0,
  464.         XV_WIDTH, WIN_EXTEND_TO_EDGE,
  465.         XV_HEIGHT, 92,
  466.         WIN_BORDER, FALSE,
  467.         NULL);
  468.     gcm_initialize_colors(obj, "Light Gray", NULL);
  469.     return obj;
  470. }
  471.  
  472. /*
  473.  * Create object `documentButton' in the specified instance.
  474.  */
  475. Xv_opaque
  476. TimeLine_window_documentButton_create(TimeLine_window_objects *ip, Xv_opaque owner)
  477. {
  478.     Xv_opaque    obj;
  479.     
  480.     obj = xv_create(owner, PANEL_BUTTON,
  481.         XV_KEY_DATA, INSTANCE, ip,
  482.         XV_X, 16,
  483.         XV_Y, 16,
  484.         PANEL_ITEM_COLOR, gcm_color_index("Black"),
  485.         PANEL_LABEL_STRING, "Document",
  486.         PANEL_ITEM_MENU, TimeLine_DocumentMenu_create((caddr_t) ip, ip->window),
  487.         NULL);
  488.     return obj;
  489. }
  490.  
  491. /*
  492.  * Create object `appButton' in the specified instance.
  493.  */
  494. Xv_opaque
  495. TimeLine_window_appButton_create(TimeLine_window_objects *ip, Xv_opaque owner)
  496. {
  497.     Xv_opaque    obj;
  498.     
  499.     obj = xv_create(owner, PANEL_BUTTON,
  500.         XV_KEY_DATA, INSTANCE, ip,
  501.         XV_X, 132,
  502.         XV_Y, 16,
  503.         PANEL_ITEM_COLOR, gcm_color_index("Black"),
  504.         PANEL_LABEL_STRING, "Applications",
  505.         PANEL_ITEM_MENU, TimeLine_AppMenu_create((caddr_t) ip, ip->window),
  506.         NULL);
  507.     return obj;
  508. }
  509.  
  510. /*
  511.  * Create object `editButton' in the specified instance.
  512.  */
  513. Xv_opaque
  514. TimeLine_window_editButton_create(TimeLine_window_objects *ip, Xv_opaque owner)
  515. {
  516.     Xv_opaque    obj;
  517.     
  518.     obj = xv_create(owner, PANEL_BUTTON,
  519.         XV_KEY_DATA, INSTANCE, ip,
  520.         XV_X, 260,
  521.         XV_Y, 16,
  522.         PANEL_ITEM_COLOR, gcm_color_index("Black"),
  523.         PANEL_LABEL_STRING, "Edit",
  524.         PANEL_ITEM_MENU, TimeLine_EditMenu_create((caddr_t) ip, ip->window),
  525.         NULL);
  526.     return obj;
  527. }
  528.  
  529. /*
  530.  * Create object `playButton' in the specified instance.
  531.  */
  532. Xv_opaque
  533. TimeLine_window_playButton_create(TimeLine_window_objects *ip, Xv_opaque owner)
  534. {
  535.     Xv_opaque    obj;
  536.     
  537.     obj = xv_create(owner, PANEL_BUTTON,
  538.         XV_KEY_DATA, INSTANCE, ip,
  539.         XV_X, 336,
  540.         XV_Y, 16,
  541.         PANEL_ITEM_COLOR, gcm_color_index("Black"),
  542.         PANEL_LABEL_STRING, "Play",
  543.         PANEL_ITEM_MENU, TimeLine_PlayMenu_create((caddr_t) ip, ip->window),
  544.         NULL);
  545.     return obj;
  546. }
  547.  
  548. /*
  549.  * Create object `optionsButton' in the specified instance.
  550.  */
  551. Xv_opaque
  552. TimeLine_window_optionsButton_create(TimeLine_window_objects *ip, Xv_opaque owner)
  553. {
  554.     Xv_opaque    obj;
  555.     
  556.     obj = xv_create(owner, PANEL_BUTTON,
  557.         XV_KEY_DATA, INSTANCE, ip,
  558.         XV_X, 416,
  559.         XV_Y, 16,
  560.         PANEL_ITEM_COLOR, gcm_color_index("Black"),
  561.         PANEL_LABEL_STRING, "Options",
  562.         PANEL_ITEM_MENU, TimeLine_OptionsMenu_create((caddr_t) ip, ip->window),
  563.         NULL);
  564.     return obj;
  565. }
  566.  
  567. /*
  568.  * Create object `ZoomSlider' in the specified instance.
  569.  */
  570. Xv_opaque
  571. TimeLine_window_ZoomSlider_create(TimeLine_window_objects *ip, Xv_opaque owner)
  572. {
  573.     extern void        ZoomSliderNotify(Panel_item, int, Event *);
  574.     Xv_opaque    obj;
  575.     
  576.     obj = xv_create(owner, PANEL_SLIDER,
  577.         XV_KEY_DATA, INSTANCE, ip,
  578.         XV_X, 520,
  579.         XV_Y, 20,
  580.         PANEL_SLIDER_WIDTH, 150,
  581.         PANEL_TICKS, 0,
  582.         PANEL_ITEM_COLOR, gcm_color_index("Black"),
  583.         PANEL_LABEL_STRING, "Zoom : ",
  584.         PANEL_DIRECTION, PANEL_HORIZONTAL,
  585.         PANEL_SLIDER_END_BOXES, FALSE,
  586.         PANEL_SHOW_RANGE, FALSE,
  587.         PANEL_SHOW_VALUE, TRUE,
  588.         PANEL_MIN_VALUE, 1,
  589.         PANEL_MAX_VALUE, 40,
  590.         PANEL_VALUE, 0,
  591.         PANEL_NOTIFY_PROC, ZoomSliderNotify,
  592.         NULL);
  593.     return obj;
  594. }
  595.  
  596. /*
  597.  * Create object `pauseButton' in the specified instance.
  598.  */
  599. Xv_opaque
  600. TimeLine_window_pauseButton_create(TimeLine_window_objects *ip, Xv_opaque owner)
  601. {
  602.     extern void        PauseResume(Panel_item, Event *);
  603.     Xv_opaque    obj;
  604.     Xv_opaque        pauseButton_image;
  605.     static unsigned short    pauseButton_bits[] = {
  606. #include "icons/pauseIcon"
  607.     };
  608.     
  609.     pauseButton_image = xv_create(XV_NULL, SERVER_IMAGE,
  610.         SERVER_IMAGE_DEPTH, 1,
  611.         SERVER_IMAGE_BITS, pauseButton_bits,
  612.         XV_WIDTH, 32,
  613.         XV_HEIGHT, 15,
  614.         NULL);
  615.     obj = xv_create(owner, PANEL_BUTTON,
  616.         XV_KEY_DATA, INSTANCE, ip,
  617.         XV_X, 192,
  618.         XV_Y, 52,
  619.         PANEL_ITEM_COLOR, gcm_color_index("Black"),
  620.         PANEL_LABEL_IMAGE, pauseButton_image,
  621.         PANEL_NOTIFY_PROC, PauseResume,
  622.         NULL);
  623.     return obj;
  624. }
  625.  
  626. /*
  627.  * Create object `stopButton' in the specified instance.
  628.  */
  629. Xv_opaque
  630. TimeLine_window_stopButton_create(TimeLine_window_objects *ip, Xv_opaque owner)
  631. {
  632.     extern void        Stop(Panel_item, Event *);
  633.     Xv_opaque    obj;
  634.     Xv_opaque        stopButton_image;
  635.     static unsigned short    stopButton_bits[] = {
  636. #include "icons/stopIcon"
  637.     };
  638.     
  639.     stopButton_image = xv_create(XV_NULL, SERVER_IMAGE,
  640.         SERVER_IMAGE_DEPTH, 1,
  641.         SERVER_IMAGE_BITS, stopButton_bits,
  642.         XV_WIDTH, 32,
  643.         XV_HEIGHT, 15,
  644.         NULL);
  645.     obj = xv_create(owner, PANEL_BUTTON,
  646.         XV_KEY_DATA, INSTANCE, ip,
  647.         XV_X, 264,
  648.         XV_Y, 52,
  649.         PANEL_ITEM_COLOR, gcm_color_index("Black"),
  650.         PANEL_LABEL_IMAGE, stopButton_image,
  651.         PANEL_NOTIFY_PROC, Stop,
  652.         NULL);
  653.     return obj;
  654. }
  655.  
  656. /*
  657.  * Create object `playIconButton' in the specified instance.
  658.  */
  659. Xv_opaque
  660. TimeLine_window_playIconButton_create(TimeLine_window_objects *ip, Xv_opaque owner)
  661. {
  662.     extern void        Play(Panel_item, Event *);
  663.     Xv_opaque    obj;
  664.     Xv_opaque        playIconButton_image;
  665.     static unsigned short    playIconButton_bits[] = {
  666. #include "icons/playIcon"
  667.     };
  668.     
  669.     playIconButton_image = xv_create(XV_NULL, SERVER_IMAGE,
  670.         SERVER_IMAGE_DEPTH, 1,
  671.         SERVER_IMAGE_BITS, playIconButton_bits,
  672.         XV_WIDTH, 32,
  673.         XV_HEIGHT, 15,
  674.         NULL);
  675.     obj = xv_create(owner, PANEL_BUTTON,
  676.         XV_KEY_DATA, INSTANCE, ip,
  677.         XV_X, 340,
  678.         XV_Y, 52,
  679.         PANEL_ITEM_COLOR, gcm_color_index("Black"),
  680.         PANEL_LABEL_IMAGE, playIconButton_image,
  681.         PANEL_NOTIFY_PROC, Play,
  682.         NULL);
  683.     return obj;
  684. }
  685.  
  686. /*
  687.  * Create object `MoveCanvasFastLeftButton' in the specified instance.
  688.  */
  689. Xv_opaque
  690. TimeLine_window_MoveCanvasFastLeftButton_create(TimeLine_window_objects *ip, Xv_opaque owner)
  691. {
  692.     extern void        MoveCanvasFastLeft(Panel_item, Event *);
  693.     Xv_opaque    obj;
  694.     Xv_opaque        MoveCanvasFastLeftButton_image;
  695.     static unsigned short    MoveCanvasFastLeftButton_bits[] = {
  696. #include "icons/FastLeftCanvasIcon"
  697.     };
  698.     
  699.     MoveCanvasFastLeftButton_image = xv_create(XV_NULL, SERVER_IMAGE,
  700.         SERVER_IMAGE_DEPTH, 1,
  701.         SERVER_IMAGE_BITS, MoveCanvasFastLeftButton_bits,
  702.         XV_WIDTH, 16,
  703.         XV_HEIGHT, 16,
  704.         NULL);
  705.     obj = xv_create(owner, PANEL_BUTTON,
  706.         XV_KEY_DATA, INSTANCE, ip,
  707.         XV_X, 528,
  708.         XV_Y, 52,
  709.         PANEL_ITEM_COLOR, gcm_color_index("Black"),
  710.         PANEL_LABEL_IMAGE, MoveCanvasFastLeftButton_image,
  711.         PANEL_NOTIFY_PROC, MoveCanvasFastLeft,
  712.         NULL);
  713.     return obj;
  714. }
  715.  
  716. /*
  717.  * Create object `MoveCanvasLeftButton' in the specified instance.
  718.  */
  719. Xv_opaque
  720. TimeLine_window_MoveCanvasLeftButton_create(TimeLine_window_objects *ip, Xv_opaque owner)
  721. {
  722.     extern void        MoveCanvasLeft(Panel_item, Event *);
  723.     Xv_opaque    obj;
  724.     Xv_opaque        MoveCanvasLeftButton_image;
  725.     static unsigned short    MoveCanvasLeftButton_bits[] = {
  726. #include "icons/LeftCanvasIcon"
  727.     };
  728.     
  729.     MoveCanvasLeftButton_image = xv_create(XV_NULL, SERVER_IMAGE,
  730.         SERVER_IMAGE_DEPTH, 1,
  731.         SERVER_IMAGE_BITS, MoveCanvasLeftButton_bits,
  732.         XV_WIDTH, 16,
  733.         XV_HEIGHT, 16,
  734.         NULL);
  735.     obj = xv_create(owner, PANEL_BUTTON,
  736.         XV_KEY_DATA, INSTANCE, ip,
  737.         XV_X, 568,
  738.         XV_Y, 52,
  739.         PANEL_ITEM_COLOR, gcm_color_index("Black"),
  740.         PANEL_LABEL_IMAGE, MoveCanvasLeftButton_image,
  741.         PANEL_NOTIFY_PROC, MoveCanvasLeft,
  742.         NULL);
  743.     return obj;
  744. }
  745.  
  746. /*
  747.  * Create object `MoveCanvasRightButton' in the specified instance.
  748.  */
  749. Xv_opaque
  750. TimeLine_window_MoveCanvasRightButton_create(TimeLine_window_objects *ip, Xv_opaque owner)
  751. {
  752.     extern void        MoveCanvasRight(Panel_item, Event *);
  753.     Xv_opaque    obj;
  754.     Xv_opaque        MoveCanvasRightButton_image;
  755.     static unsigned short    MoveCanvasRightButton_bits[] = {
  756. #include "icons/RightCanvasIcon"
  757.     };
  758.     
  759.     MoveCanvasRightButton_image = xv_create(XV_NULL, SERVER_IMAGE,
  760.         SERVER_IMAGE_DEPTH, 1,
  761.         SERVER_IMAGE_BITS, MoveCanvasRightButton_bits,
  762.         XV_WIDTH, 16,
  763.         XV_HEIGHT, 16,
  764.         NULL);
  765.     obj = xv_create(owner, PANEL_BUTTON,
  766.         XV_KEY_DATA, INSTANCE, ip,
  767.         XV_X, 668,
  768.         XV_Y, 52,
  769.         PANEL_ITEM_COLOR, gcm_color_index("Black"),
  770.         PANEL_LABEL_IMAGE, MoveCanvasRightButton_image,
  771.         PANEL_NOTIFY_PROC, MoveCanvasRight,
  772.         NULL);
  773.     return obj;
  774. }
  775.  
  776. /*
  777.  * Create object `MoveCanvasFastRightButton' in the specified instance.
  778.  */
  779. Xv_opaque
  780. TimeLine_window_MoveCanvasFastRightButton_create(TimeLine_window_objects *ip, Xv_opaque owner)
  781. {
  782.     extern void        MoveCanvasFastRight(Panel_item, Event *);
  783.     Xv_opaque    obj;
  784.     Xv_opaque        MoveCanvasFastRightButton_image;
  785.     static unsigned short    MoveCanvasFastRightButton_bits[] = {
  786. #include "icons/FastRightCanvasIcon"
  787.     };
  788.     
  789.     MoveCanvasFastRightButton_image = xv_create(XV_NULL, SERVER_IMAGE,
  790.         SERVER_IMAGE_DEPTH, 1,
  791.         SERVER_IMAGE_BITS, MoveCanvasFastRightButton_bits,
  792.         XV_WIDTH, 16,
  793.         XV_HEIGHT, 16,
  794.         NULL);
  795.     obj = xv_create(owner, PANEL_BUTTON,
  796.         XV_KEY_DATA, INSTANCE, ip,
  797.         XV_X, 708,
  798.         XV_Y, 52,
  799.         PANEL_ITEM_COLOR, gcm_color_index("Black"),
  800.         PANEL_LABEL_IMAGE, MoveCanvasFastRightButton_image,
  801.         PANEL_NOTIFY_PROC, MoveCanvasFastRight,
  802.         NULL);
  803.     return obj;
  804. }
  805.  
  806. /*
  807.  * Create object `ResetCanvasButton' in the specified instance.
  808.  */
  809. Xv_opaque
  810. TimeLine_window_ResetCanvasButton_create(TimeLine_window_objects *ip, Xv_opaque owner)
  811. {
  812.     extern void        ResetCanvas(Panel_item, Event *);
  813.     Xv_opaque    obj;
  814.     
  815.     obj = xv_create(owner, PANEL_BUTTON,
  816.         XV_KEY_DATA, INSTANCE, ip,
  817.         XV_X, 608,
  818.         XV_Y, 56,
  819.         PANEL_ITEM_COLOR, gcm_color_index("Black"),
  820.         PANEL_LABEL_STRING, "RESET",
  821.         PANEL_NOTIFY_PROC, ResetCanvas,
  822.         NULL);
  823.     return obj;
  824. }
  825.  
  826. /*
  827.  * Create object `AppCanvas' in the specified instance.
  828.  */
  829. Xv_opaque
  830. TimeLine_window_AppCanvas_create(TimeLine_window_objects *ip, Xv_opaque owner)
  831. {
  832.     extern Notify_value    AppCanvasEventHandler(Xv_window, Event *, Notify_arg, Notify_event_type);
  833.     extern void    AppCanvasRepaintHandler(Canvas, Xv_window, Display *, Window, Xv_xrectlist *);
  834.     Xv_opaque    obj;
  835.     
  836.     obj = xv_create(owner, CANVAS,
  837.         XV_KEY_DATA, INSTANCE, ip,
  838.         XV_X, 0,
  839.         XV_Y, 90,
  840.         XV_WIDTH, 112,
  841.         XV_HEIGHT, WIN_EXTEND_TO_EDGE,
  842.         CANVAS_REPAINT_PROC, AppCanvasRepaintHandler,
  843.         CANVAS_X_PAINT_WINDOW, TRUE,
  844.         NULL);
  845.     xv_set(canvas_paint_window(obj), WIN_CONSUME_EVENTS,
  846.         WIN_MOUSE_BUTTONS,
  847.         LOC_MOVE,
  848.         LOC_DRAG,
  849.         LOC_WINENTER,
  850.         LOC_WINEXIT,
  851.         WIN_ASCII_EVENTS,
  852.         WIN_LEFT_KEYS,
  853.         WIN_RIGHT_KEYS,
  854.         WIN_TOP_KEYS,
  855.         NULL, NULL);
  856.     notify_interpose_event_func(canvas_paint_window(obj),
  857.         (Notify_func) AppCanvasEventHandler, NOTIFY_SAFE);
  858.     /*
  859.      * This line is here for backwards compatibility. It will be
  860.      * removed for the next release.
  861.      */
  862.     xv_set(canvas_paint_window(obj), XV_KEY_DATA, INSTANCE, ip, NULL);
  863.     return obj;
  864. }
  865.  
  866. /*
  867.  * Create object `DrawCanvas' in the specified instance.
  868.  */
  869. Xv_opaque
  870. TimeLine_window_DrawCanvas_create(TimeLine_window_objects *ip, Xv_opaque owner)
  871. {
  872.     extern Notify_value    DrawCanvasEventHandler(Xv_window, Event *, Notify_arg, Notify_event_type);
  873.     extern void    DrawCanvasRepaintHandler(Canvas, Xv_window, Display *, Window, Xv_xrectlist *);
  874.     Xv_opaque    obj;
  875.     
  876.     obj = xv_create(owner, CANVAS,
  877.         XV_KEY_DATA, INSTANCE, ip,
  878.         XV_X, 108,
  879.         XV_Y, 90,
  880.         XV_WIDTH, WIN_EXTEND_TO_EDGE,
  881.         XV_HEIGHT, 102,
  882.         CANVAS_REPAINT_PROC, DrawCanvasRepaintHandler,
  883.         CANVAS_X_PAINT_WINDOW, TRUE,
  884.         NULL);
  885.     xv_set(canvas_paint_window(obj), WIN_CONSUME_EVENTS,
  886.         WIN_MOUSE_BUTTONS,
  887.         LOC_MOVE,
  888.         LOC_DRAG,
  889.         LOC_WINENTER,
  890.         LOC_WINEXIT,
  891.         WIN_ASCII_EVENTS,
  892.         WIN_LEFT_KEYS,
  893.         WIN_RIGHT_KEYS,
  894.         WIN_TOP_KEYS,
  895.         NULL, NULL);
  896.     notify_interpose_event_func(canvas_paint_window(obj),
  897.         (Notify_func) DrawCanvasEventHandler, NOTIFY_SAFE);
  898.     /*
  899.      * This line is here for backwards compatibility. It will be
  900.      * removed for the next release.
  901.      */
  902.     xv_set(canvas_paint_window(obj), XV_KEY_DATA, INSTANCE, ip, NULL);
  903.     return obj;
  904. }
  905.  
  906. /*
  907.  * Create object `TimeCanvas' in the specified instance.
  908.  */
  909. Xv_opaque
  910. TimeLine_window_TimeCanvas_create(TimeLine_window_objects *ip, Xv_opaque owner)
  911. {
  912.     extern Notify_value    TimeCanvasEventHandler(Xv_window, Event *, Notify_arg, Notify_event_type);
  913.     extern void    TimeCanvasRepaintHandler(Canvas, Xv_window, Display *, Window, Xv_xrectlist *);
  914.     Xv_opaque    obj;
  915.     
  916.     obj = xv_create(owner, CANVAS,
  917.         XV_KEY_DATA, INSTANCE, ip,
  918.         XV_X, 108,
  919.         XV_Y, 190,
  920.         XV_WIDTH, WIN_EXTEND_TO_EDGE,
  921.         XV_HEIGHT, WIN_EXTEND_TO_EDGE,
  922.         CANVAS_REPAINT_PROC, TimeCanvasRepaintHandler,
  923.         CANVAS_X_PAINT_WINDOW, TRUE,
  924.         NULL);
  925.     xv_set(canvas_paint_window(obj), WIN_CONSUME_EVENTS,
  926.         WIN_MOUSE_BUTTONS,
  927.         LOC_MOVE,
  928.         LOC_DRAG,
  929.         LOC_WINENTER,
  930.         LOC_WINEXIT,
  931.         WIN_ASCII_EVENTS,
  932.         WIN_LEFT_KEYS,
  933.         WIN_RIGHT_KEYS,
  934.         WIN_TOP_KEYS,
  935.         NULL, NULL);
  936.     notify_interpose_event_func(canvas_paint_window(obj),
  937.         (Notify_func) TimeCanvasEventHandler, NOTIFY_SAFE);
  938.     /*
  939.      * This line is here for backwards compatibility. It will be
  940.      * removed for the next release.
  941.      */
  942.     xv_set(canvas_paint_window(obj), XV_KEY_DATA, INSTANCE, ip, NULL);
  943.     return obj;
  944. }
  945.  
  946.